草庐IT

c++ - SIMD C++ 库

全部标签

c++ - 是否可以在 C++ 中使用正则表达式?

拷贝:Thereisafunctiontousepatternmatching(usingregularexpressions)inC++?我不确定人们会在哪里使用它...是否有任何将某些正则表达式作为参数或其他东西的解析器类型的函数?我刚刚发现我的编辑器会在/之后突出显示一行作为C/C++语法的“正则表达式”,我认为这很奇怪... 最佳答案 普通C++语言不支持正则表达式。然而,有几个可用的库支持正则表达式。Boost是一种流行的方法。检查Boost的Regex实现。http://www.onlamp.com/pub/a/onla

c++ - C 程序,打印其可执行文件名

假设源代码文件名为test.cpp。编译时,它会生成test.exe文件。当我执行它时,它应该识别它的文件名test.exe并打印它。我可以使用以下代码获取当前目录中存在的所有文件和目录的列表:DIR*directory;structdirent*direct;direct=readdir(directory);但是,我如何识别关联的文件名,在本例中为"test.exe"? 最佳答案 在您的main函数中,argv[0]是来自命令行的可执行文件的名称#includeintmain(intargc,char**argv){printf

c++ - 从 C 移植到 C++ 时应该注意什么

将我的项目从C语言转换为C++语言时应该注意什么?有什么理由使用C吗?我现在唯一的想法是确保它对DLL友好,这样我就可以在需要时创建C接口(interface)。注意:我很了解C++。模板、部分特化、为什么多重继承不好(我只看到它的一种正确用法)等。我主要想知道为什么我会使用C而不是C++。DLL和脚本语言绑定(bind)是原因之一。所以我只需要记住我应该有一个用于某些事情的C接口(interface)。还有什么吗? 最佳答案 冒着显而易见的风险,我要说的是要记住的主要事情是不要修复任何未损坏的东西。如果您有一个工作的C库,并希望它

c++ - malloc 多个小时间或几个大时间更快?

当使用malloc分配内存时,对较小的数据block进行多次malloc还是对较大的数据block进行较少的malloc通常更快?例如,假设您正在处理一个包含黑色像素和白色像素的图像文件。您正在遍历像素并希望将每个黑色像素的x和y位置保存在一个新结构中,该结构还具有指向下一个和上一个像素x和y值的指针。使用指针为每个黑色像素的x和y值分配一个新结构来遍历像素通常会更快,还是通过遍历一次来计算黑色像素的数量,然后分配一个大的使用仅包含x和y值但不包含指针的结构的内存块,然后再次迭代,将x和y值保存到该数组中?我假设某些平台在哪个更快方面可能与其他平台不同,但每个人都认为什么通常会更快?

c++ - `struct X typedef` 与 `typedef struct X` 的含义是什么?

我在现有代码库中有以下(工作)代码,用于C和C++之间共享的包含文件,在MSVC(2010)和WindowsDDK上编译:structX{USHORTx;}typedefX,*PX;和:enumMY_ENUM{enum_item_1,enum_item_2}typedefMY_ENUM;据我所知,正确的定义应该是这样的:typedefstruct{USHORTx;}X,*PX;下面的表格有什么用吗?我错过了什么吗? 最佳答案 事实typedef和typedef有效仅来自语言语法定义。typedef被归类为存储类说明符(就像stati

c++ - MSVC 名称修改

我正在尝试使用MSVC2015x86构建Lua和QtLua,但我遇到了导出/导入符号的问题。这是我为构建Lua5.3.2(source)所做的工作:cl/MD/O2/c/DLUA_BUILD_AS_DLL*.crenlua.objlua.orenluac.objluac.olink/DLL/IMPLIB:lua5.3.2.lib/OUT:lua5.3.2.dll*.objlink/OUT:lua.exelua.olua5.3.2.liblib/OUT:lua5.3.2-static.lib*.objlink/OUT:luac.exeluac.olua5.3.2-static.lib到目

Python 扩展 : using different compiler flags for a C parts and C++ parts

对于我的python扩展,我有C(来自嵌入式库)和C++文件,它们被编译并链接在一起。只有C++部分与Python接口(interface)(通过SWIG)。这在VS2015的windows和linux下的gcc中都有效。但是,对于gcc,C++文件需要一组不同于C文件的编译器标志(例如-std=c++11、-Wno-reorder),以避免出现有关C中不正确标志的警告。在setuptools/distutils中有没有办法单独更改每个文件的编译器标志,例如。基于文件扩展名?我已经使用了来自https://stackoverflow.com/a/36293331/3032680的自定义

c++ - Qt程序部署到多平台,如何?

我是Qt编程的新手,我想开发一个我想在Windows、Linux(ubuntu)和Mac上运行的程序。听说Qt支持多平台应用开发,但我的问题是,部署或编译后,任何Qt库是否需要在Ubuntu中运行这些应用程序? 最佳答案 如果您在Ubuntu上部署,因此使用.deb包,那么您的工作很简单,因为您只需要将qt作为依赖项,apt将根据需要自动安装它。然而,Windows和Mac没有任何“好的”软件管理层,因此您别无选择,只能在二进制文件中包含所需的QtDLL或编译静态文件。在Windows上,您只需确保DLL与您的程序位于同一目录中。然

c++ - 扩展精度浮点库 C/C++

我正在寻找具有以下特性的扩展精度浮点库:固定数据类型大小(即扩展精度float占用固定数量的内存)变量不需要初始化指定尾数和指数的大小C/C++接口(interface)支持非常大的float>10^10000我能找到的最接近的是IvanoPrimi的HPA库。这个库的唯一问题是我无法扩展指数(它固定为15位)。它允许我对尾数进行多种选择,但可表示的最大数字始终限于10^4932。GMP等其他库需要初始化并且不允许固定大小的数据类型。关键是我不需要任意精度,而只是扩展。但我需要有非常大的指数。感谢您的帮助!标记 最佳答案 似乎ttm

c++ - 如何从 Windows 路径的 -D 编译器定义变量创建字符串文字

在Windows下,我有一个包含Windows样式路径的环境变量。我想将该路径构建到我的程序中并将其打印出来。因此,如果我的路径是c:\top,我会使用-DTOP=$(TOP)将其传递给编译器。请注意,在将其传递给编译器之前,我无法将其转换为c:\\top。现在,我有相当于:#defineTOP=c:\top我想要相当于:charpath[]="c:\\top";我不能只使用字符串化运算符:#defineWRAP1(X)#X#defineWRAP(X)WRAP1(X)charpath[]=WRAP(TOP);这只会产生字符串“c:\top”,编译器将其视为转义序列(即\t)。我认为一个